sqrt(-sum(log(fitCCstderr)))
[1] 5.41743
sqrt(-sum(log(fitMICEstderr)))
[1] 63.71021
sqrt(-sum(log(fitMRstderr)))
[1] 63.59802
sqrt(-sum(log(fitMIDASstderr)))
[1] 63.86592
library(plotly)
p <- plot_ly(
  x = c("Complete case", "MIC", "missRanger", "MIDAS"),
  y = c(-sum(log(fitCCstderr)), -sum(log(fitMICEstderr)), -sum(log(fitMRstderr)), -sum(log(fitMIDASstderr))),
  name = "Sum of logged Std Errors",
  type = "bar"
)
p
cbind(MICEloss = MICEmeanloss, MRloss = MRmeanloss, MIDASloss = MIDASmeanloss, MIDASVAEloss = MIDASVAEmeanloss, CCLoss=CCmeanloss, adjustedCCLoss = adjustedCCmeanloss)
      MICEloss    MRloss MIDASloss MIDASVAEloss    CCLoss adjustedCCLoss
[1,] 0.2668602 0.2673009 0.2668431    0.2672094 0.3712361      0.3044155
#dfp = cbind(Complete = CClossvector, MICE = MICElossvector, missRanger = MRlossvector, MIDAS = MIDASlossvector)
#plot_ly(midwest, x = ~percollege, color = ~state, type = "box")
#plot_ly(data.frame(CClossvector), type = "box")
method = c(rep("Complete",length(CClossvector)),rep("MICE",length(MICElossvector)),rep("missRanger",length(MRlossvector))
           ,rep("MIDAS",length(MIDASlossvector)))
value = c(CClossvector, MICElossvector, MRlossvector, MIDASlossvector)
data=data.frame(method,value)
qplot( x=method , y=value , data=data , geom=c("boxplot") , fill=method)

cmmice
Confusion Matrix and Statistics

          Reference
Prediction    0    1
         0 9449  972
         1  147  179
                                          
               Accuracy : 0.8959          
                 95% CI : (0.8899, 0.9016)
    No Information Rate : 0.8929          
    P-Value [Acc > NIR] : 0.1629          
                                          
                  Kappa : 0.2048          
 Mcnemar's Test P-Value : <2e-16          
                                          
            Sensitivity : 0.15552         
            Specificity : 0.98468         
         Pos Pred Value : 0.54908         
         Neg Pred Value : 0.90673         
             Prevalence : 0.10710         
         Detection Rate : 0.01666         
   Detection Prevalence : 0.03033         
      Balanced Accuracy : 0.57010         
                                          
       'Positive' Class : 1               
                                          
cmmice = confusionMatrix(as.factor( round(MICEpreds)),as.factor(outcome), positive='1')
cmmr = confusionMatrix(as.factor( round(MRpreds)),as.factor(outcome), positive='1')
cmmidas = confusionMatrix(as.factor( round(MIDASpreds)),as.factor(outcome), positive='1')
cmcc = confusionMatrix(as.factor( round(CCpreds)),as.factor(CCoutcome), positive='1')
# cmmice$byClass["Pos Pred Value"]
#   overall["Accuracy"]
method = c("Complete case", "MICE", "missRanger", "MIDAS")
metric = c("Accuracy", "Brier", "Pos Pred Value", "Neg Pred Value", "Mean Loss", "AUC")
accuracy = c(cmcc$overall["Accuracy"],cmmice$overall["Accuracy"],cmmr$overall["Accuracy"],cmmidas$overall["Accuracy"])
accuracy = accuracy/accuracy[1] * 100
Brier = c(CCbrier, MICEbrier, MRbrier, MIDASbrier)
Brier = Brier/Brier[1] * 100
posPredValue = c(cmcc$byClass["Pos Pred Value"],cmmice$byClass["Pos Pred Value"],cmmr$byClass["Pos Pred Value"],cmmidas$byClass["Pos Pred Value"])
posPredValue =   posPredValue/posPredValue[1] * 100
negPredValue = c(cmcc$byClass["Neg Pred Value"],cmmice$byClass["Neg Pred Value"],cmmr$byClass["Neg Pred Value"],cmmidas$byClass["Neg Pred Value"])
negPredValue = negPredValue/negPredValue[1] * 100
meanloss = c(CCmeanloss, MICEmeanloss, MRmeanloss, MIDASmeanloss)
meanloss = meanloss/meanloss[1] * 100
auc = c(CCci[2], MICEci[2],MRci[2], MIDASci[2])
auc = auc/auc[1] * 100
# CCci[1]
# CCci[2]
# CCci[3]
# CCci
#summarydf = data.frame(method, accuracy, accuracyN, precision, precisionN, negpredvalue, negpredvalueN, meanloss, meanlossN, auc,
summarydf = data.frame(method, accuracy, precision, negpredvalue, meanloss, auc)
# color with RcolorBrewer
ggplot(summarydf, aes(fill=method, y=value, x=specie)) + 
    geom_bar( stat="identity", position="fill") +    
    scale_fill_brewer(palette = "Set1")
 
# Faceting
ggplot(data, aes(y=value, x=specie, color=specie, fill=specie)) + 
    geom_bar( stat="identity") +    
    facet_wrap(~condition)
library(reshape)
library(data.table)
sdf2 = data.frame(t(summarydf))
sdf2 
names(sdf2) = summarydf$method
setDT(sdf2, keep.rownames = TRUE)[]
colnames(sdf2)[1] <- "Metric"
#sdf3 = sdf2[c(3,5,7,9, 11),]
sdf3 = sdf2[-1]
sdf3$"Complete case"=round(as.numeric(as.character(sdf3$"Complete case")),1)
sdf3$"MICE"=round(as.numeric(as.character(sdf3$"MICE")),1)
sdf3$"missRanger"=round(as.numeric(as.character(sdf3$"missRanger")),1)
sdf3$"MIDAS"=round(as.numeric(as.character(sdf3$"MIDAS")),1)
sdf3
library(reshape2)
# reshape your data into long format
sdf3l <- melt(sdf3, id=c("Metric"))
sdf3l
#create color palette:
library(RColorBrewer)
coul = brewer.pal(4, "Dark2") 
#values = c("red","blue","green","yellow"), 
# make the plot
ggplot(sdf3l) +
  geom_bar(aes(x = Metric, y = value, fill = variable), 
           stat="identity", position = "dodge", width = 0.7) +
  scale_fill_manual("Method\n", values = coul, 
                    labels = c("Complete Case", "MICE", "missRanger", "MIDAS")) +
  labs(x="",y="Relative Performance %\n") +
  ylim(c(0,120)) +
  theme_bw(base_size = 14) + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KYGBge3J9DQpsb2coMC4wMDkpDQoNCg0Kc3VtKGZpdENDc3RkZXJyKQ0Kc3VtKGZpdE1JQ0VzdGRlcnIpDQpzdW0oZml0TVJzdGRlcnIpDQpzdW0oZml0TUlEQVNzdGRlcnIpDQoNCg0Kc3VtKGxvZyhmaXRDQ3N0ZGVycikpDQpzdW0obG9nKGZpdE1JQ0VzdGRlcnIpKQ0Kc3VtKGxvZyhmaXRNUnN0ZGVycikpDQpzdW0obG9nKGZpdE1JREFTc3RkZXJyKSkNCg0Kc3VtKGxvZyhmaXRDQ3N0ZGVycikpDQpzdW0obG9nKGZpdE1JQ0VzdGRlcnIpKQ0Kc3VtKGxvZyhzcXJ0KGZpdENDc3RkZXJyKSkpDQpzdW0obG9nKHNxcnQoZml0TUlDRXN0ZGVycikpKQ0Kc3VtKHNxcnQobG9nKGZpdENDc3RkZXJyKSkpDQpzdW0oc3FydChsb2coZml0TUlDRXN0ZGVycikpKQ0KDQpzcXJ0KC1zdW0obG9nKGZpdENDc3RkZXJyKSkpDQpzcXJ0KC1zdW0obG9nKGZpdE1JQ0VzdGRlcnIpKSkNCnNxcnQoLXN1bShsb2coZml0TVJzdGRlcnIpKSkNCnNxcnQoLXN1bShsb2coZml0TUlEQVNzdGRlcnIpKSkNCg0KDQpzdW0obG9nKGZpdE1JQ0VzdGRlcnIpKQ0Kc3VtKGxvZyhmaXRNUnN0ZGVycikpDQpzdW0obG9nKGZpdE1JREFTc3RkZXJyKSkNCg0KDQpzdW0obG9nKGZpdE1JQ0VzdGRlcnIpKQ0Kc3VtKGxvZyhmaXRNUnN0ZGVycikpDQpzdW0obG9nKGZpdE1JREFTc3RkZXJyKSkNCg0KYGBgDQoNCmBgYHtyfQ0KDQpsaWJyYXJ5KHBsb3RseSkNCg0KcCA8LSBwbG90X2x5KA0KICB4ID0gYygiQ29tcGxldGUgY2FzZSIsICJNSUMiLCAibWlzc1JhbmdlciIsICJNSURBUyIpLA0KICB5ID0gYygtc3VtKGxvZyhmaXRDQ3N0ZGVycikpLCAtc3VtKGxvZyhmaXRNSUNFc3RkZXJyKSksIC1zdW0obG9nKGZpdE1Sc3RkZXJyKSksIC1zdW0obG9nKGZpdE1JREFTc3RkZXJyKSkpLA0KICBuYW1lID0gIlN1bSBvZiBsb2dnZWQgU3RkIEVycm9ycyIsDQogIHR5cGUgPSAiYmFyIg0KKQ0KcA0KYGBgDQoNCmBgYHtyfQ0KY2JpbmQoTUlDRWxvc3MgPSBNSUNFbWVhbmxvc3MsIE1SbG9zcyA9IE1SbWVhbmxvc3MsIE1JREFTbG9zcyA9IE1JREFTbWVhbmxvc3MsIE1JREFTVkFFbG9zcyA9IE1JREFTVkFFbWVhbmxvc3MsIENDTG9zcz1DQ21lYW5sb3NzLCBhZGp1c3RlZENDTG9zcyA9IGFkanVzdGVkQ0NtZWFubG9zcykNCmBgYA0KDQoNCg0KYGBge3J9DQpwbG90X2x5KA0KICB4ID0gYygiQ29tcGxldGUgY2FzZSIsICJNSUMiLCAibWlzc1JhbmdlciIsICJNSURBUyIpLA0KICB5ID0gYyhDQ0xvc3M9Q0NtZWFubG9zcywgTUlDRWxvc3MgPSBNSUNFbWVhbmxvc3MsIE1SbG9zcyA9IE1SbWVhbmxvc3MsIE1JREFTbG9zcyA9IE1JREFTbWVhbmxvc3MpLA0KICBuYW1lID0gIkF2ZXJhZ2UgTG9zcyIsDQogIHR5cGUgPSAiYmFyIiwNCiAgY29sb3IgPSBJKCJkYXJrZ3JlZW4iKSkNCikNCmBgYA0KDQoNCmBgYHtyfQ0KDQojZGZwID0gY2JpbmQoQ29tcGxldGUgPSBDQ2xvc3N2ZWN0b3IsIE1JQ0UgPSBNSUNFbG9zc3ZlY3RvciwgbWlzc1JhbmdlciA9IE1SbG9zc3ZlY3RvciwgTUlEQVMgPSBNSURBU2xvc3N2ZWN0b3IpDQojcGxvdF9seShtaWR3ZXN0LCB4ID0gfnBlcmNvbGxlZ2UsIGNvbG9yID0gfnN0YXRlLCB0eXBlID0gImJveCIpDQojcGxvdF9seShkYXRhLmZyYW1lKENDbG9zc3ZlY3RvciksIHR5cGUgPSAiYm94IikNCg0KbWV0aG9kID0gYyhyZXAoIkNvbXBsZXRlIixsZW5ndGgoQ0Nsb3NzdmVjdG9yKSkscmVwKCJNSUNFIixsZW5ndGgoTUlDRWxvc3N2ZWN0b3IpKSxyZXAoIm1pc3NSYW5nZXIiLGxlbmd0aChNUmxvc3N2ZWN0b3IpKQ0KICAgICAgICAgICAscmVwKCJNSURBUyIsbGVuZ3RoKE1JREFTbG9zc3ZlY3RvcikpKQ0KdmFsdWUgPSBjKENDbG9zc3ZlY3RvciwgTUlDRWxvc3N2ZWN0b3IsIE1SbG9zc3ZlY3RvciwgTUlEQVNsb3NzdmVjdG9yKQ0KZGF0YT1kYXRhLmZyYW1lKG1ldGhvZCx2YWx1ZSkNCnFwbG90KCB4PW1ldGhvZCAsIHk9dmFsdWUgLCBkYXRhPWRhdGEgLCBnZW9tPWMoImJveHBsb3QiKSAsIGZpbGw9bWV0aG9kKQ0KYGBgDQpgYGB7cn0NCmNtbWljZSA9IHNob3dtZXRyaWNzKE1JQ0VwcmVkcywgb3V0Y29tZSkNCg0KY21taWNlID0gY29uZnVzaW9uTWF0cml4KGFzLmZhY3Rvciggcm91bmQoTUlDRXByZWRzKSksYXMuZmFjdG9yKG91dGNvbWUpLCBwb3NpdGl2ZT0nMScpDQpjbW1pY2UNCmNtbWljZSRvdmVyYWxsWzFdDQpgYGANCmBgYHtyfQ0KY21taWNlID0gY29uZnVzaW9uTWF0cml4KGFzLmZhY3Rvciggcm91bmQoTUlDRXByZWRzKSksYXMuZmFjdG9yKG91dGNvbWUpLCBwb3NpdGl2ZT0nMScpDQpjbW1yID0gY29uZnVzaW9uTWF0cml4KGFzLmZhY3Rvciggcm91bmQoTVJwcmVkcykpLGFzLmZhY3RvcihvdXRjb21lKSwgcG9zaXRpdmU9JzEnKQ0KY21taWRhcyA9IGNvbmZ1c2lvbk1hdHJpeChhcy5mYWN0b3IoIHJvdW5kKE1JREFTcHJlZHMpKSxhcy5mYWN0b3Iob3V0Y29tZSksIHBvc2l0aXZlPScxJykNCmNtY2MgPSBjb25mdXNpb25NYXRyaXgoYXMuZmFjdG9yKCByb3VuZChDQ3ByZWRzKSksYXMuZmFjdG9yKENDb3V0Y29tZSksIHBvc2l0aXZlPScxJykNCiMgY21taWNlJGJ5Q2xhc3NbIlBvcyBQcmVkIFZhbHVlIl0NCiMgICBvdmVyYWxsWyJBY2N1cmFjeSJdDQoNCg0KbWV0aG9kID0gYygiQ29tcGxldGUgY2FzZSIsICJNSUNFIiwgIm1pc3NSYW5nZXIiLCAiTUlEQVMiKQ0KbWV0cmljID0gYygiQWNjdXJhY3kiLCAiQnJpZXIiLCAiUG9zIFByZWQgVmFsdWUiLCAiTmVnIFByZWQgVmFsdWUiLCAiTWVhbiBMb3NzIiwgIkFVQyIpDQphY2N1cmFjeSA9IGMoY21jYyRvdmVyYWxsWyJBY2N1cmFjeSJdLGNtbWljZSRvdmVyYWxsWyJBY2N1cmFjeSJdLGNtbXIkb3ZlcmFsbFsiQWNjdXJhY3kiXSxjbW1pZGFzJG92ZXJhbGxbIkFjY3VyYWN5Il0pDQphY2N1cmFjeSA9IGFjY3VyYWN5L2FjY3VyYWN5WzFdICogMTAwDQoNCkJyaWVyID0gYyhDQ2JyaWVyLCBNSUNFYnJpZXIsIE1SYnJpZXIsIE1JREFTYnJpZXIpDQpCcmllciA9IEJyaWVyL0JyaWVyWzFdICogMTAwDQoNCnBvc1ByZWRWYWx1ZSA9IGMoY21jYyRieUNsYXNzWyJQb3MgUHJlZCBWYWx1ZSJdLGNtbWljZSRieUNsYXNzWyJQb3MgUHJlZCBWYWx1ZSJdLGNtbXIkYnlDbGFzc1siUG9zIFByZWQgVmFsdWUiXSxjbW1pZGFzJGJ5Q2xhc3NbIlBvcyBQcmVkIFZhbHVlIl0pDQpwb3NQcmVkVmFsdWUgPSAgIHBvc1ByZWRWYWx1ZS9wb3NQcmVkVmFsdWVbMV0gKiAxMDANCg0KbmVnUHJlZFZhbHVlID0gYyhjbWNjJGJ5Q2xhc3NbIk5lZyBQcmVkIFZhbHVlIl0sY21taWNlJGJ5Q2xhc3NbIk5lZyBQcmVkIFZhbHVlIl0sY21tciRieUNsYXNzWyJOZWcgUHJlZCBWYWx1ZSJdLGNtbWlkYXMkYnlDbGFzc1siTmVnIFByZWQgVmFsdWUiXSkNCm5lZ1ByZWRWYWx1ZSA9IG5lZ1ByZWRWYWx1ZS9uZWdQcmVkVmFsdWVbMV0gKiAxMDANCg0KbWVhbmxvc3MgPSBjKENDbWVhbmxvc3MsIE1JQ0VtZWFubG9zcywgTVJtZWFubG9zcywgTUlEQVNtZWFubG9zcykNCm1lYW5sb3NzID0gbWVhbmxvc3MvbWVhbmxvc3NbMV0gKiAxMDANCg0KYXVjID0gYyhDQ2NpWzJdLCBNSUNFY2lbMl0sTVJjaVsyXSwgTUlEQVNjaVsyXSkNCmF1YyA9IGF1Yy9hdWNbMV0gKiAxMDANCiMgQ0NjaVsxXQ0KIyBDQ2NpWzJdDQojIENDY2lbM10NCiMgQ0NjaQ0KI3N1bW1hcnlkZiA9IGRhdGEuZnJhbWUobWV0aG9kLCBhY2N1cmFjeSwgYWNjdXJhY3lOLCBwcmVjaXNpb24sIHByZWNpc2lvbk4sIG5lZ3ByZWR2YWx1ZSwgbmVncHJlZHZhbHVlTiwgbWVhbmxvc3MsIG1lYW5sb3NzTiwgYXVjLA0Kc3VtbWFyeWRmID0gZGF0YS5mcmFtZShtZXRob2QsIGFjY3VyYWN5LCBCcmllciwgcG9zUHJlZFZhbHVlLCBuZWdQcmVkVmFsdWUsIG1lYW5sb3NzLCBhdWMpDQoNCmBgYA0KDQpgYGB7cn0NCiMgY29sb3Igd2l0aCBSY29sb3JCcmV3ZXINCmdncGxvdChzdW1tYXJ5ZGYsIGFlcyhmaWxsPW1ldGhvZCwgeT12YWx1ZSwgeD1zcGVjaWUpKSArIA0KICAgIGdlb21fYmFyKCBzdGF0PSJpZGVudGl0eSIsIHBvc2l0aW9uPSJmaWxsIikgKyAgICANCiAgICBzY2FsZV9maWxsX2JyZXdlcihwYWxldHRlID0gIlNldDEiKQ0KIA0KIyBGYWNldGluZw0KZ2dwbG90KGRhdGEsIGFlcyh5PXZhbHVlLCB4PXNwZWNpZSwgY29sb3I9c3BlY2llLCBmaWxsPXNwZWNpZSkpICsgDQogICAgZ2VvbV9iYXIoIHN0YXQ9ImlkZW50aXR5IikgKyAgICANCiAgICBmYWNldF93cmFwKH5jb25kaXRpb24pDQpgYGANCg0KYGBge3J9DQpsaWJyYXJ5KHJlc2hhcGUpDQpsaWJyYXJ5KGRhdGEudGFibGUpDQoNCnNkZjIgPSBkYXRhLmZyYW1lKHQoc3VtbWFyeWRmKSkNCnNkZjIgDQoNCm5hbWVzKHNkZjIpID0gc3VtbWFyeWRmJG1ldGhvZA0Kc2V0RFQoc2RmMiwga2VlcC5yb3duYW1lcyA9IFRSVUUpW10NCmNvbG5hbWVzKHNkZjIpWzFdIDwtICJNZXRyaWMiDQoNCiNzZGYzID0gc2RmMltjKDMsNSw3LDksIDExKSxdDQpzZGYzID0gc2RmMlstMV0NCnNkZjMkIkNvbXBsZXRlIGNhc2UiPXJvdW5kKGFzLm51bWVyaWMoYXMuY2hhcmFjdGVyKHNkZjMkIkNvbXBsZXRlIGNhc2UiKSksMSkNCnNkZjMkIk1JQ0UiPXJvdW5kKGFzLm51bWVyaWMoYXMuY2hhcmFjdGVyKHNkZjMkIk1JQ0UiKSksMSkNCnNkZjMkIm1pc3NSYW5nZXIiPXJvdW5kKGFzLm51bWVyaWMoYXMuY2hhcmFjdGVyKHNkZjMkIm1pc3NSYW5nZXIiKSksMSkNCnNkZjMkIk1JREFTIj1yb3VuZChhcy5udW1lcmljKGFzLmNoYXJhY3RlcihzZGYzJCJNSURBUyIpKSwxKQ0Kc2RmMw0KYGBgDQoNCmBgYHtyfQ0KbGlicmFyeShyZXNoYXBlMikNCg0KIyByZXNoYXBlIHlvdXIgZGF0YSBpbnRvIGxvbmcgZm9ybWF0DQpzZGYzbCA8LSBtZWx0KHNkZjMsIGlkPWMoIk1ldHJpYyIpKQ0Kc2RmM2wNCg0KI2NyZWF0ZSBjb2xvciBwYWxldHRlOg0KbGlicmFyeShSQ29sb3JCcmV3ZXIpDQpjb3VsID0gYnJld2VyLnBhbCg0LCAiRGFyazIiKSANCg0KI3ZhbHVlcyA9IGMoInJlZCIsImJsdWUiLCJncmVlbiIsInllbGxvdyIpLCANCiMgbWFrZSB0aGUgcGxvdA0KZ2dwbG90KHNkZjNsKSArDQogIGdlb21fYmFyKGFlcyh4ID0gTWV0cmljLCB5ID0gdmFsdWUsIGZpbGwgPSB2YXJpYWJsZSksIA0KICAgICAgICAgICBzdGF0PSJpZGVudGl0eSIsIHBvc2l0aW9uID0gImRvZGdlIiwgd2lkdGggPSAwLjcpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwoIk1ldGhvZFxuIiwgdmFsdWVzID0gY291bCwgDQogICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoIkNvbXBsZXRlIENhc2UiLCAiTUlDRSIsICJtaXNzUmFuZ2VyIiwgIk1JREFTIikpICsNCiAgbGFicyh4PSIiLHk9IlJlbGF0aXZlIFBlcmZvcm1hbmNlICVcbiIpICsNCiAgeWxpbShjKDAsMTIwKSkgKw0KICB0aGVtZV9idyhiYXNlX3NpemUgPSAxNCkgKyANCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGUgPSA2MCwgaGp1c3QgPSAxKSkNCmBgYA0KDQpgYGB7cn0NCg0KYGBgDQoNCg0K